import axios from "axios"
import 'element-plus/es/components/message/style/css'
import { ElMessage } from 'element-plus'
import {useUserStore} from '@/stores/userStore'
import {useRouter} from 'vue-router'

const httpInstance=axios.create({
    baseURL:'http://pcapi-xiaotuxian-front-devtest.itheima.net',
    timeout:5000
})
// axios请求拦截器
httpInstance.interceptors.request.use(config => {
    const userStore=useUserStore()
    const token=userStore.userInfo.token
    if(token){
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  }, e => Promise.reject(e))
  
  // axios响应式拦截器
httpInstance.interceptors.response.use(res => res.data, e => {
  //统一错误提示
  const userStore=useUserStore()
  const router=useRouter()
  ElMessage({
    type:'warning',
    message:e.response.data.message
  })
  //401token超时处理
  if(e.response.status ===401){
    //清除用户信息
    userStore.clearUserinfo()
    //跳转到登录页
    router.push()
  }
    return Promise.reject(e)
  })
export default httpInstance